define(['jquery'] , function(){
	var $element = $('.page-tab-container') ;
	var handler = {
		pages 	: 	[] ,
		init 	: 	function(){
			var _this = this ;
			$( $element ).delegate('li[new-tab]' , 'click' , function(){
				_this.active( _this.put() ) ;
			});
			$($element).delegate('li[tab]' , 'click' , function(){
				var _ele = this ;
				_this.pages.forEach( function( v , k ){
					if( $(_ele).attr('data-filter') == v['data-filter'] )
						_this.active( v ) ;
				});
			});
			this.active( this.put() ) ;
			return this.addStyle() ; 
		},
		addStyle: function(){
			if(  $('head').find('link[from=page-tab]').length )
				return this;
			$('<link>').attr({
				rel 	: 	'stylesheet' ,
				type 	: 	'text/css' ,
				href 	: 	'assets/modules/ng-page-tab/style.css' ,
				from	: 	'page-tab'
			}).appendTo( $('head') ) ;
		},
		put 	: 	function( ops ){
			var container = $('#page-container') , 
				tabContainer = $('.page-tab-container') ,
				page = $('<div></div>').attr({
					'ui-view' 	: 	'main'
				}).hide().appendTo( container ) ,
				tab = $('<li tab></li>').html( ops && ops.name || '新标签') ;
			tabContainer.find('[new-tab]').before( tab ) ;
			
			var tabUid = 'tab' + new Date().getTime() + Math.round( Math.random( 1000000 ) ) ;
			tab.attr('data-filter' , tabUid ) ;

			var opage = {
				page 	: 	page ,
				tab 	: 	tab ,
				ops 	: 	ops ,
				'data-filter' : tabUid
			} ;
			this.pages.push( opage ) ;

			return opage ;
		},
		remove 	: 	function(){

		},
		active 	: 	function( opage ){
			var container = $('#page-container') , 
				tabContainer = $('.page-tab-container') ;
			container.find('[ui-view=main]').attr('ui-view' , '').removeClass('ng-scope').hide() ;
			tabContainer.find('li.active').removeClass('active') ;

			opage['tab'].addClass('active') ;
			opage['page'].attr('ui-view' , 'main').addClass('ng-scope').show() ;
			return opage ;
		}
	}

	return handler.init() ;
});